Documentation Home Give Thanks / Docs & Website / Email Support

Build Instructions

What follows are build instructions and notes for the various OS's that AmphetaDesk has been successfully developed on. The below mostly focuses on creating the runtimes for Windows and Mac's, but does cover some environment aspects. If you have no intention of developing or adding code to AmphetaDesk, you can leave this page. This page is NOT for end-users - only developers or hackers. If you're looking for install instructions, check the README.txt.

Required Perl Modules

There are a number of Perl modules that AmphetaDesk needs to run successfully. Most of these modules are installed on normal systems since they're pretty common for Perl use, but some, like XML::Parser and XML::Simple, require the expat C library, which may or may not be installed. If you're planning on building AmphetaDesk, it's probably a good idea to make sure you have the latest modules installed. Under ActiveState's ppm, you'd want to issue a verify command. Under a normal CPAN shell, you'd do r instead.

On Linux systems, you can run perl -MCPAN -eshell and then install Module::Name to install specific modules. On Windows, you'd use the ActiveState ppm command lineutility, with the same install line. Mac's require that you use the special cpan-mac conversion to download and install the modules.

The most important modules are contained within Bundle::LWP, libwww-perl and XML::Parser. Make sure these packages are installed on your system, and you should be all set. Specific third party modules, like XML::Simple and Text::Template are shipped with AmphetaDesk in the lib/ diretory.

Win32 Build Notes

The Win32 build of AmphetaDesk is compiled with ActiveState Perl 5.6.0.623 and Perl2EXE v4.03. We've had some difficulty with crashes when compiling with later versions of either of those tools - we're still looking into the cause. When compiling for Win32, make sure that the AmphetaDesk.pl file and all files in the lib/ and template/ directories are set for DOS line feeds. This should be done automatically on a fresh CVS checkout.

To build the Win32 GUI, you'll need some Perl modules intended only for Windows. You can install Win32::API via the ppm command line utility, along with Win32::TieRegistry. For AmphetaDesk v0.93, we've used versions 0.01 and 0.23 respectively. For the Win32::GUI module, however, you'll have to get the latest download from SourceForge (v0.0.665) and follow the install instructions within.

To create the Win32 binary:

  1. Open AmphetaDesk.pl and uncomment the three lines that end with "for windows compile".
  2. Rename the lib/ directory to lib2/ (so that the modules won't be compiled into the .exe).
  3. Open a DOS window and cd to the AmphetaDesk source directory.
  4. Run perl2exe -gui -icon=templates/default/gui/win_icon.ico
    -perloptions=-p2x_noshow_includes AmphetaDesk.pl
    (all one line).
  5. Rename lib2/ back to lib/.

This will create an AmphetaDesk.exe file within your AmphetaDesk source directory. At this point, manually test the compiled .exe file for stability. When you're satisifed that things are working fine, we'll finalize our build by preping the directory for archiving into our final zip file. You should remove the following files and directories, which will insure a default installation of AmphetaDesk:

  • All CVS/ directories.
  • Anything in the data/channels/ directory.
  • All screenshots under docs/images/.
  • The data/myChannels.opml file (and any backups).
  • The data/mySettings.xml file (and any backups).

At this point, you should be ready to create the archive, named according to the format below.

Macintosh (OS 7.5.x through 9.x) Build Notes

NOTE: See this fatal bug concerning AmphetaDesk v0.93 and MacPerl 5.6.1.
NOTE: The instructions below are valid only for v0.92 - AmphetaDesk v0.93 doesn't yet exist.

The Macintosh build of AmphetaDesk uses a not-publically-released version of MacPerl 5.2.1a1 and some modifications to the OS specific libraries within. You can find these libraries and instructions on how to update at Alan Fry's site. These are required for using the Mac GUI for AmphetaDesk (which currently hasn't shipped due to some nasty bugs still hanging around). When compiling the Macintosh build, make sure that the AmphetaDesk.pl file and all files in the lib/ directory are set for Macintosh line feeds.

We also need RuntimeBuilder to create the distributable runtime. This utility has some bugs, but has proven useful enough for now. To prevent a fatal error on some machines, open up RuntimeBuilder.dp and comment out the line that starts with: copy($sharedLibPath.$orig, $sharedLibFolder.':'.$dest).

  1. Open MacPerl and add the AmphetaDesk lib/ directory to the @INC search.
  2. Open AmphetaDesk.pl and uncomment the three lines that end with "for macintosh compile".
  3. Drop the AmphetaDesk.pl script onto RuntimeBuilder.dp.

Once RuntimeBuilder.dp has finished, you'll have a AmphetaDesk f within the current directory. This will contain the AmphetaDesk.run application, and an (possibly empty) directory called shared libs. Currently, the shared libs directory needs to have various MacPerl XS files copied into it (with their correct directory structure). These are: InternetConfig, Memory, Types, and /auto/XML/Parser/Expat/Expat.

Rename the AmphetaDesk f directory to your archive name (see "Archive File Names" below) and copy over the data/, docs/, gui/, and templates/ directories. Make sure that there are no CVS folders within those directories. Finally, you should remove the following files/folders from the data/ subdirectory: channels/, internal/, lists/services-channels-complete.xml, and lists/services-channels-failure.xml. These files are either not needed or created automatically during normal operation. You should also remove all docs/images/ss-*.jpg files, as they are screenshots that are loaded from disobey.com - they merely take up unnecessary space in the final archive.

At this point, it's very important that you open MacPerl, and REMOVE the AmphetaDesk lib/ path that we added to @INC. This addition was so Runtime Builder could properly find our library files - leaving it enabled while we test our application will give us a false sense of certainty.

Manually test the compiled AmphetaDesk.run (be sure to rename it to just AmphetaDesk before archiving) file for stability. When testing has completed, be sure to remove the automagically generated data/channels/ and data/internal/ directories. If testing has completed successfully, then Stuff and Binhex the folder and upload to Sourceforge.

Macintosh (OS X) Build Notes

The OS X wrapper is a custom Cocoa application using Mac OS X 10.1.5 and the April 2002 Developer Tools. It was developed and compiled by l.m.orchard with the Project- and Interface Builder tools and the source code and documentation are available from his site or by requesting a copy from Morbus. If you learn anything from his code, make sure you tell l.m.orchard you love him, because I certainly do.

To create the Mac OS X binary:

  1. Doubleclick the AmphetaDesk.pbproj file.
  2. Choose Build > Build. Wait patiently.
  3. Copy the AmphetaDesk.app into the AmphetaDesk source directory.

At this point, manually test the compiled .app file for stability. The .app runs the AmphetaDesk.pl file, so make sure that interaction between the two (browser opening, log display, etc.) happens as intended. When you're satisifed that things are working fine, we'll finalize our build by preping the directory for archiving into our final disk image. You should remove the following files and directories, which will insure a default installation of AmphetaDesk:

  • All CVS/ directories.
  • Anything in the data/channels/ directory.
  • All screenshots under docs/images/.
  • The data/myChannels.opml file (and any backups).
  • The data/mySettings.xml file (and any backups).

At this point, you should be ready to create the archive, named according to the format below.

Archive File Names

All completed archives should be named in the following conventions:

  • amphetadesk-mac-v0.91.sit.hqx
  • amphetadesk-osx-v0.93.dmg.gz
  • amphetadesk-src-v0.90.tar.gz
  • amphetadesk-win-v0.23.zip

Obviously, how the archives are compressed depends on the OS.


Documentation Home Give Thanks / Docs & Website / Email Support